package com.smedi.ismedi.organization.core.application.service;

import com.smedi.ismedi.organization.core.application.command.ProjectOrganizationCommand;
import com.smedi.ismedi.organization.core.domain.aggregatemodel.ProjectOrganization;

import java.util.List;

public interface ProjectOrgManageApplicationService {
    ProjectOrganization saveProjectOrganization(ProjectOrganizationCommand projectOrganizationCommand);

    List<ProjectOrganization> getAllProjectOrganizationList();

    void deleteProjectOrganization(Long projectOrganizationId);

    Boolean checkProjectOrganizationIsAvailable(Long projectOrganizationId);

    Boolean checkProjectOrganizationCanBeConfigOrganization(Long projectOrganizationId);

    Boolean checkProjectOrganizationIsExternalUnit(Long projectOrganizationId);

    void exchangeTwoProjectOrganizationNodeSort(ProjectOrganizationCommand projectOrganizationCommandPartOne, ProjectOrganizationCommand projectOrganizationCommandPartTwo);
}
